perm filename SERVO.DOC[CMS,LCS]3 blob sn#464122 filedate 1979-07-24 generic text, type T, neo UTF8
00100		JOINT SERVO INTERFACE.
00200	
00300	HOST - JOINT COMMUNICATION.
00400	
00500	Host - joint interface system.
00600		The host - joint interface system is a standard LSI 11 parallel
00700	interface which is connected through the joint i/o interface board
00800	to each joint processor's memory. The joint i/o interface board also
00900	serves as the host's connection to the external parallel inputs and
01000	outputs.
01100	 
01200	CSR0.
01300		The CSR0 bit is the address/data bit for I/O transfers to
01400	and from the joint processors memory. 0 for address and 1 for data.
01500	
01600	CSR1.
01700		The CSR1 bit is the read/write bit for I/O to the joint
01800	processors memory. 0 for read and 1 for write.
01900	
02000	DRINBUF.
02100		The input buffer is used to read data from a joint's memory
02200	when a joint is addressed and CSR1 is not set. This buffer is also
02300	used for the same functions as the earlier board (XIN, INTOL, ATTN REQ,
02400	etc.) .
02500	
02600	DROUTBUF.
02700		When CSR0 is 0 the output buffer is used to address the memory
02800	and select the joint. Bits 0 through 2 select the joint, and bits
02900	8 through 13 are the complement of the memory address. Bit 3, when
03000	set, enables the joint select counter for accessing the joints in
03100	sequence.
03200		When CSR0 is 1 the output buffer is used to write data to the
03300	selected joint's memory.
03400		The output buffer also is used for other functions as in the
03500	earlier board (XOUT, etc.) .
03600	
03700		When CSR0 is set, reading the DRINBUF by the host when CSR1
03800	is set, or writing the DROUTBUF by the host when CSR1 is clear,
03900	should be avoided because doing so transfers data according to CSR1.
04000	
04100		When reading a joint's memory immediately after writing the
04200	same location without clearing CSR0, it is nessesary to read DRINBUF
04300	twice before getting valid data.
     

00100		SHARED MEMORY DEFINITIONS.
00200	
00300	STATUS:	77000
00400		Bit 15 is the servo error bit. It is set if any error bit in
00500	the status word is set. When it is set, the servo enable bit in the
00600	mode word is cleared unless the diagnostic bit in the mode word is set
00700	and the cause of the error is a host time out (bit 13 in STATUS).
00800		Bit 14 is the check word error bit.
00900		Bit 13 is the host time out error bit.
01000		Bit 12 is the joint interrupt error bit.
01100		Bit 11 is the position out of range error bit.
01200		All other bits of the STATUS word are undefined.
01300	
01400	MODE:	76000
01500		Bit 15 of the mode word is the servo enable bit. When clear,
01600	the DAC output will allways be zero. It must be set before the joint
01700	will accept a position command or servo in diagnostic mode.
01800		Bit 14 is the integrator enable bit.
01900		Bit 13 is the LSB servo enable bit.
02000		Bit 12 is the diagnostic mode enable bit. When set and the
02100	servo is enabled, host time out errors are disabled from clearing the
02200	servo enable bit in the MODE word.
02500		All other bits are undefined.
02600	
02700	CKWORD:	75000
02800		This word is set to 377 (octal) by the joint on reset and when
02900	written by the host is used as a command. After being read by the
03000	joint, the joint resets it to 377 to handshake with the host.
03100		There are only two valid commands so far. 177001 is a no-op
03200	and 177400 is the position command. Before a position command is
03300	written the servo must be enabled in the MODE word and the new position
03400	must be written in the CMDPOS word.
03500		Invalid commands cause the joint processor to do a reset and
03600	set the check word error bit.	
03700	
03800	CMDPOS:	74000
03900		This word is used for the new position value in a position
04000	command. Bits 14 and 15 must match or the joint will do a reset and
04100	set the position out of range error flag.
04200	
04300	IOCTRL:	73000
04400		This word is a copy of the JCR output port in bits 8 through
04500	15. IOCTRL is read only. Bit 10 is the position mode bit which, when
04600	cleared, puts the joint in free mode (setpoint tracks encoder) .
04700	
04800	CURPOS:	72000
04900		This is the current position from the encoder.
     

00100		SHARED MEMORY DEFINITIONS.
00200	
00300	The rest of the shared memory words serve the same function as
00400	in the earlier servo.
00500	
00600	NINTER:	71000	Bits 8 through 15.
00700	INTSCL:	70000	Bits 8 through 15.
00800	HSTLIM:	67000	Bits 8 through 15.
00900	
01000	FRICTN:	66000	Floating point velocity error gain.
01100			(136414 octal = -0.125 for a gain of 1.)
01200	GRAVTY:	65000	Integer DAC offset variable.
01300	POSTOL:	64000	Integer position tolerance band variable.
01400	INTTOL:	63000	Integer integrator tolerance band variable.
01500	PGAIN:	62000	Floating point position error gain.
01600			(40014 octal = 1.0 for a gain of 1.)